package com.cskaoyan.javase.basic._3operation._0arithmetic;

/**
 * 算术运算符
 * @since 09:54
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        /*int a = 10;
        int b = 3;
        System.out.println(a / b);
        System.out.println(a % b);
        // 特别注意,%不是百分号,是取余符号
        // System.out.println(100 * 10 % -10);

        // 自增自减运算符
        // 语义: 每执行一次,加1或者减1,并且要把结果赋值给自己.它只能连接变量,是一个典型的一元运算符
        a++;
        a--;
        System.out.println(a);
        // 当自增自减组成表达式,参与运算或者输出等时,就会比较复杂了
        // 这时,如果自增自减符号在变量的后面,那么变量先参与运算和输出等操作,再自增自减一次
        // 如果自增自减符号在变量的前面,那么变量先自增自减一次,然后再参与运算或者输出等操作
        int c = 1;
        System.out.println(c++); // 输出1,其实c = 2
        System.out.println(++c); // 输出3,其实c = 3*/

        int a = 10;
        int b = 10;
        int c = 10;
        a = b++; // c = 10, a = 10, b = 11
        c = --a; // b = 11, a = 9, c = 9
        b = ++a; // c = 9, a = 10, b = 10
        a = c--; // b = 10,c = 8, a = 9
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);

        int x = 4;
        int y = x++ + ++x + (x * 10); // 4 + 6 + 60 = 70
        System.out.println(y);
        /*
            实际开发中,这样写自增自减,除了难为自己,没有别的用途
            只有在出面试题的时候,才会出这种题
            实际开发中,自增自减几乎不会参与运算,都是光秃秃的直接写在那里,最常见的就是for循环中的使用,其它地方几乎很少用
         */
        // 'for' statement has empty body
        for (int i = 0; i < 10; i++) {

        }

        System.out.println(100 * 10 % -10);
        System.out.println(-10 % -3);
    }
}
